package com.yjh.server.controller.admin;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.yjh.common.utils.JwtUtil;
import com.yjh.pojo.entity.User;
import com.yjh.pojo.vo.R;
import com.yjh.pojo.vo.UserVo;
import com.yjh.server.service.UserService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.util.DigestUtils;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletRequest;

@RestController
@RequestMapping("/admin/ral")
public class LoginController {
    @Autowired
    private UserService userService;

    @PostMapping("/register")
    public R<String> register(@RequestBody User user){
        System.out.println(user);
        LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(User::getUsername,user.getUsername());

        int count = userService.count(wrapper);
        if(count>0){
            return R.error("用户名已存在");
        }

        user.setPassword(DigestUtils.md5DigestAsHex(user.getPassword().getBytes()));
        user.setRole(1);
        user.setAvatar("/admin/common/static/default_avatar.jpg");

        userService.save(user);
        return R.success("注册成功");
    }

    @PostMapping("/login")
    public R<UserVo> login(@RequestBody User user){
        System.out.println(user);
//        LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
//        wrapper.eq(User::getUsername,user.getUsername());
//        User user1 = userService.getOne(wrapper);
//
//        if(user1==null){
//            return R.error("用户名不存在");
//        }
//
//        String password = DigestUtils.md5DigestAsHex(user.getPassword().getBytes());
//        if(!password.equals(user1.getPassword())){
//            return R.error("密码错误");
//        }
//
//        if(!user1.getRole().equals(user.getRole())){
//            return R.error("不存在该管理员");
//        }
//
//        String token = JwtUtil.generateToken(user1.getUsername(),user1.getUserId().toString());
//
//        UserVo userVo=new UserVo();
//        userVo.setUserId(user1.getUserId());
//        userVo.setToken(token);
        UserVo userVo = userService.login(user);
        return R.success(userVo);
    }

    @PostMapping("/logout")
    public R<String> logout() {
        return R.success("退出成功");
    }
}
